<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Agile.Common</name>
    </assembly>
    <members>
        <member name="T:Agile.Common.IObserver">
            <summary>
            Summary description for IObserver.
            </summary>
        </member>
        <member name="M:Agile.Common.IObserver.Notify(System.Object)">
            <summary>
            Notify the observer of a change, given the details of the change.
            </summary>
            <param name="state">Details the observer will want to know about.</param>
        </member>
        <member name="T:Agile.Common.Directories">
            <summary>
            Summary description for Directories.
            </summary>
        </member>
        <member name="M:Agile.Common.Directories.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.Directories.DeleteDirectory(System.IO.DirectoryInfo,Agile.Common.IObserver)">
            <summary>
            Deletes the directory, even if it contains read only items.
            Will still fail to delete the directory if there is a file in use.
            </summary>
            <param name="directory"></param>
            <param name="observer"></param>
            <remarks>Should return an action result but can't do that until move ActionResult down into Agile.Common</remarks>
        </member>
        <member name="M:Agile.Common.Directories.DisplayInExplorer(System.IO.DirectoryInfo)">
            <summary>
            Opens explorer in a new window and new process.
            </summary>
            <param name="directory"></param>
        </member>
        <member name="T:Agile.Common.ArgumentValidation">
            <summary>
            Implemented methods that disappeared from enterprise lib in V2.0
            </summary>
        </member>
        <member name="M:Agile.Common.ArgumentValidation.CheckForNullReference(System.Object,System.String)">
            <summary>
            Checks the variable is not null, throws an exception if it is
            </summary>
            <param name="variable">the object</param>
            <param name="variableName">name of the variable</param>
        </member>
        <member name="M:Agile.Common.ArgumentValidation.CheckForEmptyString(System.String,System.String)">
            <summary>
            Checks the variable is not empty, throws an exception if it is
            </summary>
            <param name="variable">the object</param>
            <param name="variableName">name of the variable</param>
        </member>
        <member name="T:Agile.Common.Strings">
            <summary>
            Support functions for strings
            </summary>
        </member>
        <member name="M:Agile.Common.Strings.Contains(System.String,System.String)">
            <summary>
            This checks whether the substring is in the string
            </summary>
            <param name="searchIn">the string to look in</param>
            <param name="searchFor">the string we are searching for</param>
            <remarks>Case Insensitive</remarks>
            <returns>true if the substring is contained in the string</returns>
        </member>
        <member name="M:Agile.Common.Strings.Contains(System.String[],System.String)">
            <summary>
            This checks whether the substring is in the string array
            </summary>
            <param name="searchIn">the string array to look in.</param>
            <param name="searchFor">the string we are searching for</param>
            <remarks>Case Insensitive</remarks>
            <returns>true if the substring is contained in the string</returns>
        </member>
        <member name="M:Agile.Common.Strings.DoesNotContain(System.String,System.String)">
            <summary>
            Checks that the string we want to find is not in the big string
            </summary>
            <param name="searchIn">Search IN this string</param>
            <param name="checkForThis">search FOR this string</param>
        </member>
        <member name="M:Agile.Common.Strings.StartTiming(System.String)">
            <summary>
            log the Start time of an operation
            </summary>
        </member>
        <member name="M:Agile.Common.Strings.FinishTiming(System.String)">
            <summary>
            log the End time of an operation
            </summary>
        </member>
        <member name="M:Agile.Common.Strings.RemoveFirstInstanceOf(System.String,System.String)">
            <summary>
            Removes the first instance of the given string
            </summary>
            <param name="stringToRemove">string containing comma separated columns.</param>
            <param name="removeFrom">remove the first instance of the string from this string</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Strings.AsStringArray(System.Collections.ICollection)">
            <summary>
            Return a set of values as an array
            </summary>
            <param name="values"></param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Strings.Split(System.String,System.String)">
            <summary>
            Splits the value into strings, based on a large string
            to take out
            </summary>
            <param name="original">the original source string</param>
            <param name="delimiter">the delimiter to split on</param>
            <returns>the results</returns>
        </member>
        <member name="M:Agile.Common.Strings.Space(System.Int32)">
            <summary>
            Get a string with this amount of spaces
            </summary>
            <param name="count">the count</param>
            <returns>the string</returns>
        </member>
        <member name="M:Agile.Common.Strings.ToString(System.Object)">
            <summary>
            Gets an objet as a string, but doesn't spit the dummy if the object
            happens to be null
            </summary>
            <param name="value">the value</param>
            <returns>the value, or an empty string</returns>
        </member>
        <member name="M:Agile.Common.Strings.Quoted(System.String)">
            <summary>
            Return the string with quotes around it
            </summary>
            <param name="value">the value</param>
            <returns>the quoted string</returns>
        </member>
        <member name="M:Agile.Common.Strings.Left(System.String,System.Int32)">
            <summary>
            Get the leftmost n characters
            </summary>
            <param name="value">the string we are taking a substring of</param>
            <param name="count">the count of characters</param>
            <returns>the leftmost n chracters</returns>
        </member>
        <member name="M:Agile.Common.Strings.IsValidNumber(System.String)">
            <summary>
            Returns whether the string is decimal or not
            Does not accept commas in the string
            </summary>
            <param name="check">Any string</param>
            <returns>The truth of the matter!</returns>
        </member>
        <member name="M:Agile.Common.Strings.ConvertWithOrdinal(System.Int32)">
            <summary>
            Converts the given number to a string and appends the appropriate ordinal.
            </summary>
            <param name="number">any valid number</param>
        </member>
        <member name="M:Agile.Common.Strings.RemoveSpacesFromString(System.String)">
            <summary>
            Removes any spaces from the given string (concatenates each word in the string)
            </summary>
        </member>
        <member name="M:Agile.Common.Strings.RemoveNonAlphanumericCharacters(System.String)">
            <summary>
            Removes any unsafe characters from the given string, i.e. anything that is not a letter or a number!
            Note: Underscores "_" are NOT removed, spaces " " ARE removed.
            </summary>
        </member>
        <member name="M:Agile.Common.Strings.GetStringBetween(System.String,System.String,System.String)">
            <summary>
            Gets the string that is between the start and finish strings.
            NOTE: Always works from the FIRST OCCURENCE of start and finish
            </summary>
            <param name="searchIn">Search in this string</param>
            <param name="start">Starting from the end of this string</param>
            <param name="finish">Get the contents up the start of this string</param>
            <remarks>Does not return any of the start and finish strings</remarks>
        </member>
        <member name="M:Agile.Common.Strings.GetStringBetweenInclusive(System.String,System.String,System.String)">
            <summary>
            Gets the string that is between the start and finish strings,
            INCLUDING the start and finish strings.
            NOTE: Always works from the FIRST OCCURENCE of start and finish
            </summary>
            <param name="searchIn">Search in this string</param>
            <param name="start">Starting from the start of this string</param>
            <param name="finish">Get the contents up the end of this string</param>
        </member>
        <member name="M:Agile.Common.Strings.GetStringBetweenInclusive(System.String,System.String,System.String,System.String)">
            <summary>
            Gets the string that is between the start and finish strings,
            INCLUDING the start and finish strings.
            NOTE: Always works from the FIRST OCCURENCE of start and finish
            </summary>
            <param name="searchIn">Search in this string</param>
            <param name="start">Starting from the start of this string</param>
            <param name="finish">Get the contents up the end of this string</param>
            <param name="splitter">split the start and finish strings with this if 
            there is nothing between the them. (e.g. you may want a new line '\r\n')</param>
        </member>
        <member name="M:Agile.Common.Strings.SplitMultiLineString(System.String,System.String)">
            <summary>
            Splits the given string by new line, then places the first characters of every 
            line in front of each split and returns the result.
            NOTE: also starts with a new line
            </summary>
            <param name="stringToSplit">the single or multi line string that is to be split</param>
            <param name="firstCharactersOfEveryLine">characters that will appear as the first characters of every line.</param>
            <remarks>particularly useful for generating comments.</remarks>
        </member>
        <member name="M:Agile.Common.Strings.ToCamelCase(System.String)">
            <summary>
            Returns the given string with 'camel casing'
            </summary>
            <example>'SomeString' returns 'someString'.
            NOTE: at the moment 'Somestring' should return 'someString' but it currently will only return 'somestring'
            (this should change in the future).</example>
            <param name="convertToCamelCase">the string to be converted to camel casing.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Strings.ToPascalCase(System.String)">
            <summary>
            Returns the given string with 'Pascal casing'
            </summary>
            <example>'someString' returns 'SomeString'.
            NOTE: at the moment 'somestring' should return 'SomeString' but it currently will only return 
            'somestring' (this should change in the future).</example>
            <param name="convertToPascalCase">the string to be converted to pascal casing.</param>
            <returns></returns>
        </member>
        <member name="F:Agile.Common.Strings.Cult">
            <summary>
            Culture for AUS
            </summary>
        </member>
        <member name="M:Agile.Common.Strings.ParseDateString(System.String,System.String,System.String)">
            <summary>
            Takes a string and format and returns in that format
            </summary>
            
            <param name="date">Date to format</param>
            <param name="format">Format to apply</param>
            <param name="defaultVal">The default value to apply</param>
            
            <returns>string</returns>
        </member>
        <member name="M:Agile.Common.Strings.GetArgument(System.Collections.Generic.IEnumerable{System.String},System.String)">
            <summary>
            Gets the argument value for the given switch
            </summary>
            <param name="args"></param>
            <param name="switchValue">The full switch to search for (including ALL characters) e.g. must be '/e' or '/d' for the database update program.</param>
            <returns></returns>
        </member>
        <member name="T:Agile.Common.AgileFileInfoCollection">
            <summary>
            AgileFileInfoCollection
            </summary>
        </member>
        <member name="T:Agile.Common.AgileCollection">
            <summary>
            Wraps the CollectionBase class and adds some common functionality for collections.
            </summary>
        </member>
        <member name="F:Agile.Common.AgileCollection.DOUBLE_FORMATTER">
            <summary>
            Format for displaying doubles
            </summary>
        </member>
        <member name="M:Agile.Common.AgileCollection.Contains(System.Object)">
            <summary>
            Check if the object is in the collection.
            </summary>
            <param name="item"></param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.AgileCollection.GetForDisplay(System.String[])">
            <summary>
            Gets the collection in a datatable ready for display (e.g. in a grid).
            </summary>
            <param name="propertyNames">The properties (columns) to include in the datatable.
            These must match the property name exactly EXCEPT the name MAY include spaces.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.AgileCollection.Sort">
            <summary>
            Sort the items in the collection.
            </summary>
            <remarks>WARNING: The collection must be a collection of objects
            that implement the IAgileControlDetails interface.</remarks>
        </member>
        <member name="M:Agile.Common.AgileCollection.SortReverse">
            <summary>
            Sort the items in the collection
            </summary>
            <remarks>WARNING: The collection must be a collection of objects
            that implement the IAgileControlDetails interface.</remarks>
        </member>
        <member name="P:Agile.Common.AgileCollection.IsEmpty">
            <summary>
            Returns true if there are no items in the collection.
            </summary>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.ContainsFileNamed(System.String)">
            <summary>
            Returns true if there is a file with the given name in the collecion. 
            Including the extension but not including the path.
            </summary>
            <param name="fileName">Name of the file to look for.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.AddRange(Agile.Common.AgileFileInfoCollection)">
            <summary>
            Add a collection of AgileFileInfo items to the collection
            </summary>
            <param name="files">Collection of item to add to the collection.</param>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.Build">
            <summary>
            Instantiate a new AgileFileInfoCollection
            </summary>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.Add(Agile.Common.AgileFileInfo)">
            <summary>
            Add a new AgileFileInfo to the collection
            </summary>
            <param name="agileFileInfo">agileFileInfo to add to the collection.</param>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.Remove(Agile.Common.AgileFileInfo)">
            <summary>
            Remove a AgileFileInfo from the collection
            </summary>
            <param name="agileFileInfo">agileFileInfo to remove from the collection.</param>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.Contains(Agile.Common.AgileFileInfo)">
            <summary>
            Checks if the given AgileFileInfo is in the collection
            </summary>
            <param name="agileFileInfo">agileFileInfo to look for in the collection.</param>
            <returns>True if the item is in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.Find(System.String)">
            <summary>
            Finds and returns the file with the given name from the collection.
            </summary>
            <param name="fileName">Name of the file including the extension</param>
            <returns>null if the file is not found.</returns>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.IndexOf(Agile.Common.AgileFileInfo)">
            <summary>
            Searches for the specified AgileFileInfo and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="agileFileInfo">agileFileInfo to get the index of from the collection.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.IndexOf(Agile.Common.AgileFileInfo,System.Int32)">
            <summary>
            Searches for the specified AgileFileInfo and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="agileFileInfo">agileFileInfo to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.IndexOf(Agile.Common.AgileFileInfo,System.Int32,System.Int32)">
            <summary>
            Searches for the specified AgileFileInfo and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="agileFileInfo">agileFileInfo to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <param name="count">The number of elements in the section to search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.Insert(System.Int32,Agile.Common.AgileFileInfo)">
            <summary>
            Inserts the AgileFileInfo into the collection at the specified index.
            </summary>
            <param name="index">The zero-based index at which value should be inserted.</param>
            <param name="agileFileInfo">agileFileInfo to insert into the collection.</param>
        </member>
        <member name="M:Agile.Common.AgileFileInfoCollection.CopyTo(Agile.Common.AgileFileInfo[],System.Int32)">
            <summary>
            Copies a range of elements from the collection of AgileFileInfo's to a compatible
            one-dimensional System.Array, starting at the specified index of the target array.
            </summary>
            <param name="agileFileInfos">The one-dimensional System.Array that is the destination of the elements copied from the collection. The System.Array must have zero-based indexing.</param>
            <param name="index">The zero-based index at which copying begins.</param>
        </member>
        <member name="P:Agile.Common.AgileFileInfoCollection.Item(System.Int32)">
            <summary>
            Returns the AgileFileInfo that is at the given index in the collection.
            </summary>
        </member>
        <member name="T:Agile.Common.CommonFunctions">
            <summary>
            A collection of frequently used functions.
            All functions are static.
            </summary>
        </member>
        <member name="M:Agile.Common.CommonFunctions.AreAllCharactersNumeric(System.String)">
            <summary>
            Check that the give string contains all numeric characters.
            </summary>
            <param name="check">check this string for all numeric characers.</param>
            <returns>True if the string contains ALL numeric characters.</returns>
            <remarks>Negative numbers will also return true.</remarks>
        </member>
        <member name="M:Agile.Common.CommonFunctions.AreAllCharactersNumeric(System.Object)">
            <summary>
            Check that the give string contains all numeric characters.
            </summary>
            <param name="check">check this object and see if it is a number.</param>
            <returns>True if the string contains ALL numeric characters.</returns>
            <remarks>Negative numbers will also return true.
            [Converts to a string and then calls the other override.]</remarks>
        </member>
        <member name="M:Agile.Common.CommonFunctions.IsNumeric(System.Object)">
            <summary>
            Returns true if the given object is numeric (or its ToString mehtod is numeric).
            </summary>
            <param name="check"></param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.RemoveNegativeSign(System.String)">
            <summary>
            Removes the negative sign from a number if it has one, otherwise just returns the number as is.
            ie. Changes -932 to 932
            </summary>
            <param name="number">number to remove the negative sign from.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.RemoveDecimalPoint(System.String)">
            <summary>
            Removes the decimal point from a number if it has one, otherwise just returns the number as is.
            ie. Changes 5.5 to 55
            </summary>
            <param name="number">number to remove the decimal point from.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.IsAlpha(System.String)">
            <summary>
            Checks if the given string contains all Alpha characters.
            i.e. A-Z
            </summary>
            <param name="check">Check this string for all alpha characters.</param>
            <returns>true if all characters are alpha characters.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.IsAlphanumeric(System.String)">
            <summary>
            Checks if the given string containss all Alpha Numeric characters.
            Warning: Negative numbers will return false (ie "-" is NOT alpha or numeric)
            </summary>
            <param name="check">Check this string for all alpha numeric characters.</param>
            <returns>true if all characters are alpha numeric.</returns>
            <remarks>Numeric is not camel cased because of fx cop rule 'CompoundWordsShouldBeCasedCorrectly'</remarks>
        </member>
        <member name="M:Agile.Common.CommonFunctions.IsCurrency(System.String)">
            <summary>
            Check if theValue string is a currency
            </summary>
            <param name="theValue">The string contains currency value</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.FormatCurrency(System.Double)">
            <summary>
            Gets a string representation of a currency value - done to
            ensure consistency across all apps
            </summary>
            <param name="value">the value</param>
            <returns>the value as a string</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.FormatCurrency(System.Decimal)">
            <summary>
            Gets a string representation of a currency value - done to
            ensure consistency across all apps
            </summary>
            <param name="value">the value</param>
            <returns>the value as a string</returns>
            <remarks>If the value is over $10000, and does not include
            a cents portion, then the resulting string does not 
            include cents. i.e: 50000.00 will return $50000 not $50000.00</remarks>
        </member>
        <member name="M:Agile.Common.CommonFunctions.FormatLongCurrency(System.Decimal)">
            <summary>
            Gets a string representation of a currency value
            including the cents portion.
            </summary>
            <param name="value">the value</param>
            <returns>the value as a string</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.Left(System.String,System.Int32)">
            <summary>
            get the leftmost n characters of a string, or less if the string
            is less
            </summary>
            <param name="value">the full string</param>
            <param name="length">the number of characters we want</param>
            <returns>the leftmost n characters </returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.Right(System.String,System.Int32)">
            <summary>
            gets the rightmost n chracters of a string
            </summary>
            <param name="value">the full string</param>
            <param name="length">the number of characters we want</param>
            <returns>the rightmost n characters</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.Bound(System.Int32,System.Int32,System.Int32)">
            <summary>
            This trims a value to the bounds given
            </summary>
            <param name="value">the raw value</param>
            <param name="minimum">the minimum allowed value</param>
            <param name="maximum">the maximum allowed value</param>
            <returns>the value, trimmed to the min, max</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeNullable``1(System.Object)">
            <summary>
            Returns the given value as an integer if it is 'safe'.
            i.e. If the value is null or non-numeric this method will return 0.
            </summary>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeInt(System.Object)">
            <summary>
            Returns the given value as an integer if it is 'safe'.
            i.e. If the value is null or non-numeric this method will return 0.
            </summary>
            <param name="value">The value to return if it is a safe int.</param>
            <returns>0 if the value is not safe, otherwise the value as an int.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeInt(System.Object,System.Int32)">
            <summary>
            Returns the given value as an integer if it is 'safe'.
            i.e. If the value is null or non-numeric this method will 
            return the given default value.
            </summary>
            <param name="value">The value to return if it is a safe int.</param>
            <param name="defaultValue">Default value to use if the value is not 'safe'</param>
            <returns>The default value if the 'value' is not safe, otherwise the 'value' as an int.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeShort(System.Object)">
            <summary>
            Returns the given value as an short if it is 'safe'.
            i.e. If the value is null or non-numeric this method will return 0.
            </summary>
            <param name="value">The value to return if it is a safe short.</param>
            <returns>0 if the value is not safe, otherwise the value as an short.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeShort(System.Object,System.Int16)">
            <summary>
            Returns the given value as an short if it is 'safe'.
            i.e. If the value is null or non-numeric this method will 
            return the given default value.
            </summary>
            <param name="value">The value to return if it is a safe short.</param>
            <param name="defaultValue">Default value to use if the value is not 'safe'</param>
            <returns>The default value if the 'value' is not safe, otherwise the 'value' as an short.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeLong(System.Object)">
            <summary>
            Returns the given value as an long if it is 'safe'.
            i.e. If the value is null or non-numeric this method will return 0.
            </summary>
            <param name="value">The value to return if it is a safe long.</param>
            <returns>0 if the value is not safe, otherwise the value as an long.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeLong(System.Object,System.Int64)">
            <summary>
            Returns the given value as an long if it is 'safe'.
            i.e. If the value is null or non-numeric this method will 
            return the given default value.
            </summary>
            <param name="value">The value to return if it is a safe long.</param>
            <param name="defaultValue">Default value to use if the value is not 'safe'</param>
            <returns>The default value if the 'value' is not safe, otherwise the 'value' as an long.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeDouble(System.Object)">
            <summary>
            Returns the given value as a double if it is 'safe'.
            i.e. If the value is null or non-numeric this method will return 0.
            </summary>
            <param name="value">The value to return if it is a safe double.</param>
            <returns>0 if the value is not safe, otherwise the value as a double.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeDouble(System.Object,System.Double)">
            <summary>
            Returns the given value as a double if it is 'safe'.
            i.e. If the value is null or non-numeric this method will 
            return the given default value.
            </summary>
            <param name="value">The value to return if it is a safe double.</param>
            <param name="defaultValue">Default value to use if the value is not 'safe'</param>
            <returns>The default value if the 'value' is not safe, otherwise the 'value' as a double.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeFloat(System.Object)">
            <summary>
            Returns the given value as a float if it is 'safe'.
            i.e. If the value is null or non-numeric this method will return 0.
            </summary>
            <param name="value">The value to return if it is a safe float.</param>
            <returns>0 if the value is not safe, otherwise the value as a float.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeFloat(System.Object,System.Single)">
            <summary>
            Returns the given value as a float if it is 'safe'.
            i.e. If the value is null or non-numeric this method will 
            return the given default value.
            </summary>
            <param name="value">The value to return if it is a safe float.</param>
            <param name="defaultValue">Default value to use if the value is not 'safe'</param>
            <returns>The default value if the 'value' is not safe, otherwise the 'value' as a float.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeDecimal(System.Object)">
            <summary>
            Returns the given value as a decimal if it is 'safe'.
            i.e. If the value is null or non-numeric this method will return 0.
            </summary>
            <param name="value">The value to return if it is a safe decimal.</param>
            <returns>0 if the value is not safe, otherwise the value as a decimal.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeDecimal(System.Object,System.Decimal)">
            <summary>
            Returns the given value as a decimal if it is 'safe'.
            i.e. If the value is null or non-numeric this method will 
            return the given default value.
            </summary>
            <param name="value">The value to return if it is a safe decimal.</param>
            <param name="defaultValue">Default value to use if the value is not 'safe'</param>
            <returns>The default value if the 'value' is not safe, otherwise the 'value' as a decimal.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeString(System.Object)">
            <summary>
            If the value is null this method will return an empty string
            OR if it 'is a string' then it returns the value
            OTHERWISE it returns the objects .ToString method.
            </summary>
            <param name="value">The value to return if it is a safe string.</param>
            <returns>string.Empty if the value is not safe, otherwise the value as an string.</returns>
        </member>
        <member name="M:Agile.Common.CommonFunctions.SafeGuid(System.Object)">
            <summary>
            If value is a valid guid it gets returned as a guid,
            OTHERWISE it returns Guid.Empty
            </summary>
        </member>
        <member name="T:Agile.Common.CommonFunctions.SimpleFunction">
            <summary>
            Delegate for simple functions that take no parameters
            and have no return value.
            </summary>
        </member>
        <member name="T:Agile.Common.CommonFunctions.StringDelegate">
            <summary>
            Delegate for a method that takes a string parameter and returns a string
            </summary>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="T:Agile.Common.Dates">
            <summary>
            Support functions for dates
            </summary>
        </member>
        <member name="M:Agile.Common.Dates.BusinessDaysDiff(System.DateTime,System.DateTime)">
            <summary>
            Gets the number of business days between dates
            </summary>
            
            <remarks>This is very primitive - upgrade to sophisticated
            algorithm when time permits!</remarks>
            
            <param name="StartDate">Start date to compare</param>
            <param name="EndDate">End date to compare</param>
            
            <returns>int</returns>
        </member>
        <member name="M:Agile.Common.Dates.Format(System.DateTime)">
            <summary>
            Returns the given date as a formatted string.
            [d MMM yyyy]
            </summary>
            <param name="date">the date to format</param>
            <returns>the given date as a string</returns>
        </member>
        <member name="M:Agile.Common.Dates.FormatWithTime(System.DateTime)">
            <summary>
            Returns the given date and time as a formatted string.
            [d MMM yyyy HH:mm:ss]
            </summary>
            <param name="date">the date to format</param>
            <returns>the date as a string</returns>
        </member>
        <member name="M:Agile.Common.Dates.Format(System.Data.SqlTypes.SqlDateTime)">
            <summary>
            Returns the given sql date as a formatted string.
            </summary>
            <param name="date">the date</param>
            <returns>the date time</returns>
        </member>
        <member name="M:Agile.Common.Dates.FormatTime(System.DateTime)">
            <summary>
            Returns the time of the given datetime as a formatted string.
            24 hour time with hours, minutes and seconds.
            </summary>
            <param name="date">the date</param>
            <returns>the time element of the given date</returns>
        </member>
        <member name="M:Agile.Common.Dates.FormatTimeShort(System.DateTime)">
            <summary>
            Returns the time of the given datetime as a formatted string.
            24 hour time with just the hours and minutes.
            </summary>
            <param name="date">the date to format</param>
            <returns>the time part</returns>
        </member>
        <member name="M:Agile.Common.Dates.SameDate(System.DateTime,System.DateTime)">
            <summary>
            Returns true if the two given datetimes have the same date, 
            i.e. not including the time!
            </summary>
            <param name="first">first date to compare</param>
            <param name="second">second date to compare</param>
            <returns>true if the DATES are the same</returns>
        </member>
        <member name="M:Agile.Common.Dates.SameDate(System.Nullable{System.DateTime},System.DateTime)">
            <summary>
            Returns true if the two given datetimes have the same date, 
            i.e. not including the time!
            </summary>
            <param name="first">first date to compare</param>
            <param name="second">second date to compare</param>
            <returns>true if the DATES are the same</returns>
        </member>
        <member name="M:Agile.Common.Dates.Between(System.DateTime,System.DateTime,System.DateTime)">
            <summary>
            Returns true if the check date is falls between the from and to date.
            (toDate may be 'before' the from date and this function will still work.)
            </summary>
            <param name="checkDate">Check if this date is between the first and second dates.</param>
            <param name="fromDate">From date (inclusive).</param>
            <param name="toDate">To date (inclusive).</param>
            <returns>True if the check date falls on or between the other two dates</returns>
        </member>
        <member name="M:Agile.Common.Dates.IsDate(System.String)">
            <summary>
            This checks if this string is a valid date
            </summary>
            <param name="isThisADate">Check if this string is a valid date</param>
            <returns>true if the value can be converted to a date</returns>
            <remarks>Only use this if you are pretty sure that you already have a date!
            (because is determines if it is a date by trying to parse it and then
            returning false if an exception occurs)</remarks>
        </member>
        <member name="M:Agile.Common.Dates.ZeroMilliseconds(System.DateTime)">
            <summary>
            Returns the given date with milliseconds set to zero
            </summary>
            <param name="date">the date to set milliseconds to true</param>
            <returns>The source datetime with milliseconds set to zero</returns>
        </member>
        <member name="P:Agile.Common.Dates.NullDate">
            <summary>
            Gets the value of a 'null' date.
            i.e. The value the system assigns when a new date is initialised but a specific value is not set.
            </summary>
        </member>
        <member name="T:Agile.Common.AgileFileInfo">
            <summary>
            Wrapper for FileInfo.
            </summary>
        </member>
        <member name="T:Agile.Common.UI.IAgileControlDetails">
            <summary>
            Make your class implement this interface to fit in the
            'Agile' GUI architecture.
            </summary>
            <remarks>Provides details from your class that are commonly used
            by GUI components</remarks>
        </member>
        <member name="P:Agile.Common.UI.IAgileControlDetails.DisplayValue">
            <summary>
            Gets the value to display in the control
            </summary>
        </member>
        <member name="P:Agile.Common.UI.IAgileControlDetails.ChildObjects">
            <summary>
            Gets any child objects.
            </summary>
            <example>A database table should return its collection of columns.</example>
            <remarks>Returns NULL if there are not any child objects.</remarks>
        </member>
        <member name="P:Agile.Common.UI.IAgileControlDetails.ForeColor">
            <summary>
            Gets the color to use for the fore color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="P:Agile.Common.UI.IAgileControlDetails.BackColor">
            <summary>
            Gets the color to use for the back color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="M:Agile.Common.AgileFileInfo.#ctor(System.IO.FileInfo)">
            <summary>
            Constructor
            </summary>
            <param name="fileInfo">The FileInfo to wrap</param>
        </member>
        <member name="M:Agile.Common.AgileFileInfo.Build(System.IO.FileInfo)">
            <summary>
            Instantiate a new AgileFileInfo with the given FileInfo.
            </summary>
            <param name="fileInfo">The FileInfo to wrap</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.AgileFileInfo.ToString">
            <summary>
            Override to get the full name of the file.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.AgileFileInfo.FileInfo">
            <summary>
            The 'wrapped' File info object.
            </summary>
        </member>
        <member name="P:Agile.Common.AgileFileInfo.Name">
            <summary>
            Gets the name of the file
            </summary>
        </member>
        <member name="P:Agile.Common.AgileFileInfo.NameExcludingExtension">
            <summary>
            Gets the name of the file without the file extension.
            </summary>
        </member>
        <member name="P:Agile.Common.AgileFileInfo.Agile#Common#UI#IAgileControlDetails#DisplayValue">
            <summary>
            Gets the value to display in the control
            </summary>
        </member>
        <member name="P:Agile.Common.AgileFileInfo.Agile#Common#UI#IAgileControlDetails#ChildObjects">
            <summary>
            Gets any child objects.
            </summary>
            <example>A database table should return its collection of columns.</example>
            <remarks>Returns NULL if there are not any child objects.</remarks>
        </member>
        <member name="P:Agile.Common.AgileFileInfo.ForeColor">
            <summary>
            Gets the color to use for the fore color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="P:Agile.Common.AgileFileInfo.BackColor">
            <summary>
            Gets the color to use for the back color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="T:Agile.Common.Loggers.DebugLogger">
            <summary>
            Default logger
            </summary>
        </member>
        <member name="T:Agile.Common.Loggers.ILogger">
            <summary>
            Logger interface
            </summary>
        </member>
        <member name="M:Agile.Common.Loggers.ILogger.Write(System.String)">
            <summary>
            Write message to the log.
            </summary>
        </member>
        <member name="M:Agile.Common.Loggers.ILogger.Write(System.String,System.Object[])">
            <summary>
            Write message to the log.
            </summary>
        </member>
        <member name="M:Agile.Common.Loggers.DebugLogger.Write(System.String)">
            <summary>
            Write message to the log.
            </summary>
        </member>
        <member name="M:Agile.Common.Loggers.DebugLogger.Write(System.String,System.Object[])">
            <summary>
            Write message to the log.
            </summary>
        </member>
        <member name="M:Agile.Common.Loggers.DebugLogger.DoNothingJustTesting">
            <summary>
            remove this later
            </summary>
        </member>
        <member name="T:Agile.Common.AssertionFailedException">
            <summary>
            Summary description for AssertionFailedException.
            </summary>
        </member>
        <member name="M:Agile.Common.AssertionFailedException.#ctor">
            <summary>
            Initializes a new instance of the AssertionFailedException class.
            </summary>
        </member>
        <member name="M:Agile.Common.AssertionFailedException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the AssertionFailedException class with a specified error message.
            </summary>
            <param name="errorMessage">The error message that explains the reason for the exception.</param>
        </member>
        <member name="M:Agile.Common.AssertionFailedException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the AssertionFailedException class with a specified error message 
            and a reference to the inner exception that is the cause of this exception.
            </summary>
            <param name="errorMessage">The error message that explains the reason for the exception.</param>
            <param name="innerException">The exception that is the cause of the current exception.</param>
        </member>
        <member name="M:Agile.Common.AssertionFailedException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the AssertionFailedException class with serialized data.
            </summary>
            <param name="info">The object that holds the serialized object data.</param>
            <param name="context">The contextual information about the source or destination.</param>
        </member>
        <member name="T:Agile.Common.AgileDirectoryInfo">
            <summary>
            Wrapper for DirectoryInfo.
            </summary>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfo.#ctor(System.IO.DirectoryInfo)">
            <summary>
            Constructor
            </summary>
            <param name="directoryInfo">The DirectoryInfo to wrap</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfo.Build(System.IO.DirectoryInfo)">
            <summary>
            Instantiate a new AgileDirectoryInfo with the given DirectoryInfo.
            </summary>
            <param name="directoryInfo">The DirectoryInfo to wrap</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfo.GetDirectories">
            <summary>
            Gets the 'child' directories as an Agile DirectoryInfo Collection.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.AgileDirectoryInfo.DirectoryInfo">
            <summary>
            The 'wrapped' Directory info object.
            </summary>
        </member>
        <member name="P:Agile.Common.AgileDirectoryInfo.Agile#Common#UI#IAgileControlDetails#DisplayValue">
            <summary>
            Gets the value to display in the control
            </summary>
        </member>
        <member name="P:Agile.Common.AgileDirectoryInfo.Agile#Common#UI#IAgileControlDetails#ChildObjects">
            <summary>
            Gets any child objects.
            </summary>
            <example>A database table should return its collection of columns.</example>
            <remarks>Returns NULL if there are not any child objects.</remarks>
        </member>
        <member name="P:Agile.Common.AgileDirectoryInfo.ForeColor">
            <summary>
            Gets the color to use for the fore color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="P:Agile.Common.AgileDirectoryInfo.BackColor">
            <summary>
            Gets the color to use for the back color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="T:Agile.Common.AgileDirectoryInfoCollection">
            <summary>
            AgileDirectoryInfoCollection
            </summary>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.AddRange(Agile.Common.AgileDirectoryInfoCollection)">
            <summary>
            Adds a collection of AgileDirectoryInfos to the collection.
            </summary>
            <param name="directories">Collection of directories to add to this collection.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.AddRange(Agile.Common.AgileDirectoryInfo[])">
            <summary>
            Adds an arrya of AgileDirectoryInfos to the collection.
            </summary>
            <param name="directories">Array of directories to add to this collection.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.AddRange(System.IO.DirectoryInfo[])">
            <summary>
            Adds an array of AgileDirectoryInfos to the collection.
            </summary>
            <param name="directoryInfos">Array of directories to add to this collection.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.AddRange(System.IO.DirectoryInfo[],System.String[])">
            <summary>
            Adds an array of AgileDirectoryInfos to the collection.
            </summary>
            <param name="directoryInfos">Array of directories to add to this collection.</param>
            <param name="excludeMatches">Excludes an directory that matches or partially matches strings provided here.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Contains(System.IO.DirectoryInfo)">
            <summary>
            Checks if the given DirectoryInfo is in the collection.
            </summary>
            <param name="directoryInfo">DirectoryInfo to look for in the collection.</param>
            <returns>True if the item is in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Build">
            <summary>
            Instantiate a new AgileDirectoryInfoCollection
            </summary>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Build(System.IO.DirectoryInfo,System.String[])">
            <summary>
            Instantiate a new AgileDirectoryInfoCollection with the given directory.
            Returns a collection of its 'child' directories
            </summary>
            <param name="directory"></param>
            <param name="excludeMatches">Excludes an directory that matches or partially matches strings provided here.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Build(System.IO.DirectoryInfo)">
            <summary>
            Instantiate a new AgileDirectoryInfoCollection with the given directory.
            Returns a collection of its 'child' directories
            </summary>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Add(Agile.Common.AgileDirectoryInfo)">
            <summary>
            Add a new AgileDirectoryInfo to the collection
            </summary>
            <param name="agileDirectoryInfo">agileDirectoryInfo to add to the collection.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Remove(Agile.Common.AgileDirectoryInfo)">
            <summary>
            Remove a AgileDirectoryInfo from the collection
            </summary>
            <param name="agileDirectoryInfo">agileDirectoryInfo to remove from the collection.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Contains(Agile.Common.AgileDirectoryInfo)">
            <summary>
            Checks if the given AgileDirectoryInfo is in the collection
            </summary>
            <param name="agileDirectoryInfo">agileDirectoryInfo to look for in the collection.</param>
            <returns>True if the item is in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.IndexOf(Agile.Common.AgileDirectoryInfo)">
            <summary>
            Searches for the specified AgileDirectoryInfo and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="agileDirectoryInfo">agileDirectoryInfo to get the index of from the collection.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.IndexOf(Agile.Common.AgileDirectoryInfo,System.Int32)">
            <summary>
            Searches for the specified AgileDirectoryInfo and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="agileDirectoryInfo">agileDirectoryInfo to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.IndexOf(Agile.Common.AgileDirectoryInfo,System.Int32,System.Int32)">
            <summary>
            Searches for the specified AgileDirectoryInfo and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="agileDirectoryInfo">agileDirectoryInfo to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <param name="count">The number of elements in the section to search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.Insert(System.Int32,Agile.Common.AgileDirectoryInfo)">
            <summary>
            Inserts the AgileDirectoryInfo into the collection at the specified index.
            </summary>
            <param name="index">The zero-based index at which value should be inserted.</param>
            <param name="agileDirectoryInfo">agileDirectoryInfo to insert into the collection.</param>
        </member>
        <member name="M:Agile.Common.AgileDirectoryInfoCollection.CopyTo(Agile.Common.AgileDirectoryInfo[],System.Int32)">
            <summary>
            Copies a range of elements from the collection of AgileDirectoryInfo's to a compatible
            one-dimensional System.Array, starting at the specified index of the target array.
            </summary>
            <param name="agileDirectoryInfos">The one-dimensional System.Array that is the destination of the elements copied from the collection. The System.Array must have zero-based indexing.</param>
            <param name="index">The zero-based index at which copying begins.</param>
        </member>
        <member name="P:Agile.Common.AgileDirectoryInfoCollection.Item(System.Int32)">
            <summary>
            Returns the AgileDirectoryInfo that is at the given index in the collection.
            </summary>
        </member>
        <member name="T:Agile.Common.AgileCommonException">
            <summary>
            Exceptions specific to the Agile.Common namespace.
            </summary>
            <remarks>Doesnt currently do anything extra, but is required anyway because
            of fxCop rule - DoNotRaiseReservedExceptionTypes</remarks>
        </member>
        <member name="M:Agile.Common.AgileCommonException.#ctor">
            <summary>
            Initializes a new instance of the AgileCommonException class.
            </summary>
        </member>
        <member name="M:Agile.Common.AgileCommonException.#ctor(System.String)">
            <summary>
            Initializes a new instance of the AgileCommonException class with a specified error message. 
            </summary>
            <param name="message">A message that describes the error.</param>
        </member>
        <member name="M:Agile.Common.AgileCommonException.#ctor(System.String,System.Exception)">
            <summary>
            Initializes a new instance of the AgileCommonException class with a specified error message and a reference to the inner exception that is the cause of this exception.  
            </summary>
            <param name="message">A message that describes the error.</param>
            <param name="innerException">The exception that is the cause of the current exception. 
            If the innerException parameter is not a null reference, 
            the current exception is raised in a catch block that handles the inner exception.</param>
        </member>
        <member name="M:Agile.Common.AgileCommonException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
            <summary>
            Initializes a new instance of the AgileCommonException class with serialized data.
            </summary>
            <param name="info">The object that holds the serialized object data.</param>
            <param name="context">The contextual information about the source or destination.</param>
        </member>
        <member name="T:Agile.Common.ActionResult">
            <summary>
            Essentially an extended 'bool' for when you want to know
            details of why something failed.
            </summary>
            <example>
            public ActionResult Validate()
            {
            	if(RequiredField == null)
            	{
            		return ActionResult.Failed("RequiredField is mandatory");
            	}
            	return ActionResult.Success;
            }
            </example>
        </member>
        <member name="F:Agile.Common.ActionResult._failureReason">
            <summary>
            The reason why the action failed.
            </summary>
        </member>
        <member name="M:Agile.Common.ActionResult.#ctor(System.String)">
            <summary>
            Action result constructor.
            </summary>
            <param name="reason">Reason for failure. Set to null when the action was successful.</param>
        </member>
        <member name="M:Agile.Common.ActionResult.Failed(System.String)">
            <summary>
            Instantiate a failed action result with the reason for the failure.
            </summary>
            <param name="reason">Why the action failed.</param>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.ActionResult.Success">
            <summary>
            Instantiate a successful action result.
            </summary>
        </member>
        <member name="P:Agile.Common.ActionResult.FailureReason">
            <summary>
            Gets the reason why the action failed.
            </summary>
        </member>
        <member name="P:Agile.Common.ActionResult.WasSuccessful">
            <summary>
            Returns true if the action was successful.
            </summary>
        </member>
        <member name="T:Agile.Common.CleanDevelopmentDirectories">
            <summary>
            Finds all bin and obj directories and deletes them.
            Searches through the given directory or the current directory 
            and ALL sub directories. 
            </summary>
            <value>The bin or obj directory must contain either a Debug or Release directory. (little safety check)</value>
        </member>
        <member name="M:Agile.Common.CleanDevelopmentDirectories.CleanOutputsAsync(System.IO.DirectoryInfo,Agile.Common.IObserver)">
            <summary>
            Clean outputs from the given directory.
            </summary>
            <param name="directory">Delete all bin and obj directories in this directory.</param>
            <param name="observer">Observer to notify of changes.</param>
        </member>
        <member name="M:Agile.Common.CleanDevelopmentDirectories.DeleteBinAndObjDirectories(System.IO.DirectoryInfo)">
            <summary>
            Deletes the given directory if it is a bin or obj directory (and it is ok to delete).
            </summary>
            <param name="directory"></param>
        </member>
        <member name="M:Agile.Common.CleanDevelopmentDirectories.DeleteBinAndObjDirectoriesAsync(System.Object)">
            <summary>
            wrapper method created for async processing.
            </summary>
            <param name="asyncResult"></param>
        </member>
        <member name="M:Agile.Common.CleanDevelopmentDirectories.ProcessDeleteCompletedRequest(System.IAsyncResult)">
            <summary>
            The callback method to handle when a directory delete is completed
            </summary>
        </member>
        <member name="M:Agile.Common.CleanDevelopmentDirectories.NotifyObserver(System.String)">
            <summary>
            Notify the observer if one has been set.
            </summary>
            <param name="text"></param>
        </member>
        <member name="M:Agile.Common.CleanDevelopmentDirectories.IsOkToDelete(System.IO.DirectoryInfo)">
            <summary>
            Determines if the directory is safe to delete.
            </summary>
            <param name="directory">Check if this directory is ok to delete.</param>
            <returns>True if it is ok to delete the directory</returns>
        </member>
        <member name="T:Agile.Common.Files">
            <summary>
            Summary description for Files.
            </summary>
        </member>
        <member name="M:Agile.Common.Files.ReplaceStringIn(System.IO.FileInfo,System.String,System.String,System.Boolean)">
            <summary>
            Searches for the text to be replaced in the file contents.
            If found it gets replaced with the new text.
            </summary>
            <param name="file">file to search and replace the string in.</param>
            <param name="replaceThisText">Text that is to be replaced.</param>
            <param name="withThisText">The new text.</param>
            <param name="forceWriteOverReadOnlyFile"></param>
            <returns>True if the text was successfully replaced.</returns>
        </member>
        <member name="M:Agile.Common.Files.ReplaceStringIn(System.IO.FileInfo,System.String,System.String)">
            <summary>
            Searches for the text to be replaced in the file contents.
            If found it gets replaced with the new text.
            </summary>
            <param name="file">file to search and replace the string in.</param>
            <param name="replaceThisText">Text that is to be replaced.</param>
            <param name="withThisText">The new text.</param>
            <returns>True if the text was successfully replaced.</returns>
        </member>
        <member name="M:Agile.Common.Files.FileContainsText(System.IO.FileInfo,System.String)">
            <summary>
            Returns true if the file contents contains the given text.
            </summary>
            <param name="file">Check this file.</param>
            <param name="textToLookFor">The text to look for in the file.</param>
            <returns>True if the file contains the text.</returns>
        </member>
        <member name="M:Agile.Common.Files.IsTheRightFileType(System.IO.FileInfo,System.String[])">
            <summary>
            Checks if the file is the right file type, ie has the right file extension.
            The extension and the desired file type must be an exact match.
            </summary>
            <param name="file">Check the file type of this is the type we want.</param>
            <param name="desiredFileTypes">The file extension(s) you want the file to be (do not include the "."!)</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Files.IsTheRightFileTypeSoftMatch(System.IO.FileInfo,System.String)">
            <summary>
            Checks if the file is the right file type, by checking if the files extension
            ENDS WITH the given text.
            </summary>
            <param name="file">Check the file type of this is the type we want.</param>
            <param name="desiredFileType">The file extension you want the file to be (do not include the "."!)</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Files.LoopThroughSubDirectories(System.IO.DirectoryInfo,Agile.Common.Files.PerformActionOnDirectory,System.String[])">
            <summary>
            Loop through all of the sub directories of the given directory.
            </summary>
            <param name="directory">'Parent' directory. Action is performed on THIS directory and all sub directories.</param>
            <param name="action">The action to perform on the directory and its sub directories.</param>
            <param name="ignoreDirectoriesStartingWith">Ignore any directory (and its sub directories) that starts with any of the
            given strings. Use only for directories like '_svn' or where you know the name is unique.</param>
        </member>
        <member name="M:Agile.Common.Files.LoopThroughSubDirectoriesAsync(System.IO.DirectoryInfo,System.AsyncCallback,Agile.Common.Files.PerformActionOnDirectoryAsync)">
            <summary>
            Loop through all of the sub directories of the given directory.
            </summary>
            <param name="callback"></param>
            <param name="directory">'Parent' directory. Action is performed on THIS directory and all sub directories.</param>
            <param name="asyncAction">The action to perform on the directory and its sub directories.</param>
        </member>
        <member name="M:Agile.Common.Files.GoThroughFilesIn(System.IO.DirectoryInfo,Agile.Common.Files.PerformActionOnFile)">
            <summary>
            Loop through all of the files in the directory.
            </summary>
            <param name="directory">Directory to search through files in.</param>
            <param name="action">The action to perform on the file.</param>
        </member>
        <member name="M:Agile.Common.Files.CleanOutputsIn(System.IO.DirectoryInfo)">
            <summary>
            Clean outputs from the given directory.
            Deletes all 'bin' and 'obj' directories in the given directory
            AND its sub directories.
            </summary>
            <param name="directory">Delete all bin and obj directories in this directory.</param>
        </member>
        <member name="M:Agile.Common.Files.CleanOutputsIn(System.IO.DirectoryInfo,Agile.Common.IObserver)">
            <summary>
            Clean outputs from the given directory.
            Deletes all 'bin' and 'obj' directories in the given directory
            AND its sub directories.
            </summary>
            <param name="directory">Delete all bin and obj directories in this directory.</param>
            <param name="observer">Observer to notify of changes.</param>
        </member>
        <member name="T:Agile.Common.Files.PerformActionOnDirectory">
            <summary>
            Delegate for performing an action on a directory.
            </summary>
        </member>
        <member name="T:Agile.Common.Files.PerformActionOnDirectoryAsync">
            <summary>
            Delegate for performing an asynchronous action on a directory.
            </summary>
        </member>
        <member name="T:Agile.Common.Files.PerformActionOnFile">
            <summary>
            Delegate for performing an action on a file.
            </summary>
        </member>
        <member name="T:Agile.Common.Files.PerformActionOnFileAsync">
            <summary>
            Delegate for performing an asynchronous action on a file.
            </summary>
        </member>
        <member name="T:Agile.Common.UI.AgileControlReverseSorter">
            <summary>
            Implementation of IComparer for 
            objects that implement IAgileControlDetails.
            </summary>
        </member>
        <member name="M:Agile.Common.UI.AgileControlReverseSorter.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.UI.AgileControlReverseSorter.Compare(System.Object,System.Object)">
            <summary>
            Compare one object with the other for sorting.
            </summary>
            <param name="x">any object but must implement IAgileControlDetails.</param>
            <param name="y">any object but must implement IAgileControlDetails.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.UI.AgileControlReverseSorter.Build">
            <summary>
            Instantiate a new AgileControlReverseSorter.
            </summary>
            <returns></returns>
        </member>
        <member name="T:Agile.Common.UI.AgileControlSorter">
            <summary>
            Implementation of IComparer for 
            objects that implement IAgileControlDetails.
            </summary>
        </member>
        <member name="M:Agile.Common.UI.AgileControlSorter.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.UI.AgileControlSorter.Compare(System.Object,System.Object)">
            <summary>
            Compare one object with the other for sorting.
            </summary>
            <param name="x">any object but must implement IAgileControlDetails.</param>
            <param name="y">any object but must implement IAgileControlDetails.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.UI.AgileControlSorter.Build">
            <summary>
            Instantiate a new AgileControlSorter.
            </summary>
            <returns></returns>
        </member>
        <member name="T:Agile.Common.UI.AgileEditorAttribute">
            <summary>
            Summary description for AgileEditorAttribute.
            </summary>
        </member>
        <member name="M:Agile.Common.UI.AgileEditorAttribute.#ctor(System.Type)">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="P:Agile.Common.UI.AgileEditorAttribute.EditType">
            <summary>
            Gets the Type that this Editor edits
            </summary>
        </member>
        <member name="T:Agile.Common.UI.GUIDetailsAttribute">
            <summary>
            Summary description for GeneratorDescriptionAttribute.
            </summary>
        </member>
        <member name="M:Agile.Common.UI.GUIDetailsAttribute.#ctor(System.String)">
            <summary>
            Constructor
            </summary>
            <param name="display">Value to display in things such as context menu's</param>
        </member>
        <member name="P:Agile.Common.UI.GUIDetailsAttribute.Display">
            <summary>
            Value to display in things such as context menu's
            </summary>
        </member>
        <member name="T:Agile.Common.Reflections.AgileAssembly">
            <summary>
            AgileAssembly is a wrapper for System.Reflection.Assembly.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssembly.#ctor(System.Reflection.Assembly)">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssembly.ToString">
            <summary>
            override of ToString to show the contained item
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssembly.Build(System.Reflection.Assembly)">
            <summary>
            Instantiate a new AgileAssembly with the given Assembly.
            </summary>
            <param name="assembly">The System.Reflection.Assembly to wrap</param>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.Reflections.AgileAssembly.Assembly">
            <summary>
            Gets the internal System.Reflection.Assembly
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.AgileAssembly.Agile#Common#UI#IAgileControlDetails#DisplayValue">
            <summary>
            Gets the value to display in the control
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.AgileAssembly.Agile#Common#UI#IAgileControlDetails#ChildObjects">
            <summary>
            Gets any child objects.
            </summary>
            <example>A database table should return its collection of columns.</example>
            <remarks>Returns NULL if there are not any child objects.</remarks>
        </member>
        <member name="P:Agile.Common.Reflections.AgileAssembly.ForeColor">
            <summary>
            Gets the color to use for the fore color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="P:Agile.Common.Reflections.AgileAssembly.BackColor">
            <summary>
            Gets the color to use for the back color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="T:Agile.Common.Reflections.AgileAssemblyCollection">
            <summary>
            Collection of System.Assembly items.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.AddRange(Agile.Common.Reflections.AgileAssemblyCollection)">
            <summary>
            Adds a collection of AgileAssemblys to the collection.
            </summary>
            <param name="assemblies">Collection of assemblies to add to this collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.AddRange(Agile.Common.Reflections.AgileAssembly[])">
            <summary>
            Adds an arrya of AgileAssemblys to the collection.
            </summary>
            <param name="assemblies">Array of assemblies to add to this collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.AddRange(System.Reflection.Assembly[])">
            <summary>
            Adds an arrya of AgileAssemblys to the collection.
            </summary>
            <param name="assemblies">Array of assemblies to add to this collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.Contains(System.Reflection.Assembly)">
            <summary>
            Checks if the given Assembly is in the collection.
            </summary>
            <param name="assembly">assembly to look for in the collection.</param>
            <returns>True if the item is in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.Build">
            <summary>
            Instantiate a new AssemblyCollection
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.Add(Agile.Common.Reflections.AgileAssembly)">
            <summary>
            Add a new Assembly to the collection
            </summary>
            <param name="assembly">assembly to add to the collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.Remove(Agile.Common.Reflections.AgileAssembly)">
            <summary>
            Remove a AgileAssembly from the collection
            </summary>
            <param name="assembly">assembly to remove from the collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.Contains(Agile.Common.Reflections.AgileAssembly)">
            <summary>
            Checks if the given AgileAssembly is in the collection
            </summary>
            <param name="lookForAssembly">assembly to look for in the collection.</param>
            <returns>True if the item is in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.IndexOf(Agile.Common.Reflections.AgileAssembly)">
            <summary>
            Searches for the specified AgileAssembly and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="assembly">assembly to get the index of from the collection.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.IndexOf(Agile.Common.Reflections.AgileAssembly,System.Int32)">
            <summary>
            Searches for the specified AgileAssembly and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="assembly">assembly to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.IndexOf(Agile.Common.Reflections.AgileAssembly,System.Int32,System.Int32)">
            <summary>
            Searches for the specified AgileAssembly and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="assembly">assembly to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <param name="count">The number of elements in the section to search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.Insert(System.Int32,Agile.Common.Reflections.AgileAssembly)">
            <summary>
            Inserts the AgileAssembly into the collection at the specified index.
            </summary>
            <param name="index">The zero-based index at which value should be inserted.</param>
            <param name="assembly">assembly to insert into the collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.AgileAssemblyCollection.CopyTo(Agile.Common.Reflections.AgileAssembly[],System.Int32)">
            <summary>
            Copies a range of elements from the collection of AgileAssembly's to a compatible
            one-dimensional System.Array, starting at the specified index of the target array.
            </summary>
            <param name="assemblies">The one-dimensional System.Array that is the destination of the elements copied from the collection. The System.Array must have zero-based indexing.</param>
            <param name="index">The zero-based index at which copying begins.</param>
        </member>
        <member name="P:Agile.Common.Reflections.AgileAssemblyCollection.Item(System.Int32)">
            <summary>
            Returns the AgileAssembly that is at the given index in the collection.
            </summary>
        </member>
        <member name="T:Agile.Common.Reflections.AgileType">
            <summary>
            AgileType is a wrapper for System.Type.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.#ctor(System.Type)">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.Build(System.Type)">
            <summary>
            Instantiate a new AgileType with the given System type.
            </summary>
            <param name="systemType">The System.Type to wrap</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.GetSubSystemNameWhenRootNamespaceNotSet">
            <summary>
            Determines the sub system name when the root namespace
            has not been set.
            Essentially returns everything to the left of the ProjectName.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.ToString">
            <summary>
            override of ToString to show the contained item
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.CompareTo(System.Object)">
            <summary>
            Implementation of IComparable
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.ImplementsInterface(System.Type)">
            <summary>
            Check if the given interface is implemented by this Type.
            </summary>
            <param name="thisInterface">Check if this interface is implemented by this Type.</param>
            <returns>Returns true if this Type implements the given interface.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.ImplementsInterface(System.String)">
            <summary>
            Check if the given interface is implemented by this Type.
            </summary>
            <param name="interfaceName">Check if this interface is implemented by this Type.</param>
            <returns>Returns true if this Type implements the given interface.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.InstantiateMethodExistsFor(Agile.Common.Reflections.MethodParameterDetails)">
            <summary>
            Determines if an instantiate method exists in this type for the 
            given set of method parameters.
            </summary>
            <param name="parameterDetails">Method Parameters.</param>
            <returns>True if an Instantiate method exists for the parameter set.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.InstantiateMethodExistsFor(System.Type[])">
            <summary>
            Determines if an instantiate method exists in this type for the 
            given set of method parameters.
            </summary>
            <param name="types">Types in the signature of the instantiate method.</param>
            <returns>True if an Instantiate method exists with that signature.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.AgileType.InstantiateConcreteClass(Agile.Common.Reflections.MethodParameterDetails)">
            <summary>
            Instantiate one of these Types with the given parameters.
            </summary>
            <param name="parameterDetails">Parameters required for instantiation.
            NOTE: The signature MUST map directly to the signature of one of the 
            Instantiate methods on the class.</param>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.SystemType">
            <summary>
            Gets the System.Type that is being wrapped.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.SubSystemName">
            <summary>
            Gets the Sub System name from the given assembly.
            </summary>
            <remarks>WARNING: This property makes some assumptions about naming
            conventions for namespaces</remarks>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.RootNameSpace">
            <summary>
            The root namespace to use for all Namespaces.
            i.e The first element of the namespace for all of OUR classes.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.AssemblyName">
            <summary>
            Gets the Name of the Assembly that the type is in.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.Name">
            <summary>
            Gets the Name of the Type.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.ProjectName">
            <summary>
            Gets the Project name from the given assembly.
            </summary>
            <remarks>WARNING: This property makes some assumptions about naming
            conventions for namespaces</remarks>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.ProjectSubFolder">
            <summary>
            Gets the sub folders of the project (if there are any.)
            </summary>
            <example>'Agile.Common.Testing'
            would return 'Testing'</example>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.Agile#Common#UI#IAgileControlDetails#ChildObjects">
            <summary>
            Gets any child objects.
            </summary>
            <example>A database table should return its collection of columns.</example>
            <remarks>Returns NULL if there are not any child objects.</remarks>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.Agile#Common#UI#IAgileControlDetails#DisplayValue">
            <summary>
            Gets the value to display in the control
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.ForeColor">
            <summary>
            Gets the color to use for the fore color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="P:Agile.Common.Reflections.AgileType.BackColor">
            <summary>
            Gets the color to use for the back color
            </summary>
            <remarks>Must be an existing color, may be null</remarks>
        </member>
        <member name="T:Agile.Common.Reflections.AgileTypeCollection">
            <summary>
            AgileTypeCollection
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileTypeCollection.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileTypeCollection.Build">
            <summary>
            Instantiate a new TypeCollection
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileTypeCollection.AddRange(System.Type[])">
            <summary>
            Add an array of system types to the list (a new AgileType will be created for each)
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileTypeCollection.Contains(System.Type)">
            <summary>
            Returns true if the given system type has a corresponding AgileType in the list.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.AgileTypeCollection.AddUnique(Agile.Common.Reflections.AgileType)">
            <summary>
            Add a new Type to the collection, ensures that duplicates are not added.
            </summary>
            <param name="type">type to add to the collection.</param>
        </member>
        <member name="T:Agile.Common.Reflections.Assemblies">
            <summary>
            Singleton class used to cache and retrieve Assembly info
            </summary>
        </member>
        <member name="F:Agile.Common.Reflections.Assemblies._uniqueInstance">
            <summary>
            The unique instance of the Assemblies object.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.#ctor">
            <summary>
            Private constructor to lock down instantiation
            </summary>
        </member>
        <member name="F:Agile.Common.Reflections.Assemblies._loadedAssemblies">
            <summary>
            Cached copy of loaded assemblies
            </summary>
        </member>
        <member name="F:Agile.Common.Reflections.Assemblies._ourLoadedAssemblies">
            <summary>
            Cached copy of loaded assemblies
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.InvalidateCache">
            <summary>
            Invalidate the cache and cause everything to be reloaded again
            next time it is accessed.
            </summary>
            <remarks>Make sure you know what you're doing when you call this!</remarks>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.LoadAllAssemblies">
            <summary>
            Load all of the standard assemblies.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.LoadOurAssemblies">
            <summary>
            Loads our assemblies (fills the array of Assemblies)
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.IsOneOfOurs(System.Reflection.Assembly)">
            <summary>
            Returns true if the assembly is one of our assemblies
            </summary>
            <param name="assembly">the assembly to check</param>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.IsOneOfOurs(System.String)">
            <summary>
            Returns true if the assembly is one of our assemblies
            </summary>
            <param name="assemblyName">Name of the assembly to check</param>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.AddUnloadedAssembliesIn(System.String)">
            <summary>
            Search all dlls in the path.
            </summary>
            <param name="path"></param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.AddUnloadedAssemblies(System.String)">
            <summary>
            Adds any already unloaded assemblies from the given path to AllLoadedAssemblies
            </summary>
            <param name="fullPath"></param>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.ContainsAssemblyNamed(Agile.Common.Reflections.AgileAssemblyCollection,System.String)">
            <summary>
            Returns true if an assembly of the given name is in the given set of assemblies.
            </summary>
            <param name="assembliesToSearch">Collection of assemblies to search through</param>
            <param name="nameOfAssemblyToFind">Full Name of the assembly to look for.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.GetAssemblyNamed(Agile.Common.Reflections.AgileAssemblyCollection,System.String)">
            <summary>
            Gets the assembly of the given name from the given set of assemblies.
            </summary>
            <remarks>CASE sensitive</remarks>
            <param name="assembliesToSearch">Collection of assemblies to search through</param>
            <param name="nameOfAssemblyToFind">Full Name of the assembly to look for.</param>
            <returns>null if the assembly is not found, otherwise the Assembly.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.GetFileStream(System.Reflection.Assembly,System.String)">
            <summary>
            Get a file resource as a stream
            </summary>
            <param name="theAssembly">the assembly we are looking in</param>
            <param name="fileName">the filename</param>
            <returns>the resource as a stream</returns>
        </member>
        <member name="M:Agile.Common.Reflections.Assemblies.FindResource(System.Reflection.Assembly,System.String)">
            <summary>
            Goes through the list of resource names, and finds the resource
            name corresponding to this file.
            </summary>
            <remarks>An exception is thrown if the resource is not found.</remarks>
            <param name="theAssembly">Assembly to search.</param>
            <param name="fileName">Name of the file to find.</param>
            <returns>The resource</returns>
        </member>
        <member name="P:Agile.Common.Reflections.Assemblies.Instance">
            <summary>
            Get the instance of the Assemblies object
            </summary>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.Reflections.Assemblies.AllLoadedAssemblies">
            <summary>
            Gets all of the loaded assemblies.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.Assemblies.OurAssemblies">
            <summary>
            Gets all of our loaded assemblies.
            </summary>
        </member>
        <member name="T:Agile.Common.Reflections.IPlugin">
            <summary>
            A public interface to be used by all custom plugins
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.IPlugin.PerformAction(Agile.Common.CommonFunctions.SimpleFunction)">
            <summary>
            Make the plugin perform the action
            </summary>
            <param name="actionToPerform"></param>
        </member>
        <member name="T:Agile.Common.Reflections.MethodParameterDetails">
            <summary>
            When we invoke methods using reflection, we need to know the parameter
            types to get the method and we need the actual parameter values when
            we call Invoke. 
            This class encapsulates those parameter details.
            </summary>
        </member>
        <member name="F:Agile.Common.Reflections.MethodParameterDetails._parameters">
            <summary>
            Stores the parameter details
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetails.#ctor(System.Object[])">
            <summary>
            Construct with the parameters
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetails.Build(System.Object[])">
            <summary>
            Instantiate the required parameters. 
            </summary>
            <param name="parameters">All of the parameters required for the method.
            NOTE: Must be in the correct order!</param>
            <returns></returns>
        </member>
        <member name="P:Agile.Common.Reflections.MethodParameterDetails.NumberOfParameters">
            <summary>
            Gets the number of parameters that have been provided for the Instantiation method.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.MethodParameterDetails.HasNoParameters">
            <summary>
            Returns true if there are no parameters defined.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.MethodParameterDetails.Signature">
            <summary>
            Gets the signature (not return type tho) details.
            Essentially the Types of the parameters that were provided on
            instantiation.
            </summary>
        </member>
        <member name="P:Agile.Common.Reflections.MethodParameterDetails.Parameters">
            <summary>
            Gets the parameter values.
            </summary>
        </member>
        <member name="T:Agile.Common.Reflections.MethodParameterDetailsCollection">
            <summary>
            MethodParameterDetailsCollection
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.#ctor">
            <summary>
            Constructor
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.Build">
            <summary>
            Instantiate a new MethodParameterDetailsCollection
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.Add(Agile.Common.Reflections.MethodParameterDetails)">
            <summary>
            Add a new MethodParameterDetails to the collection
            </summary>
            <param name="methodParameterDetails">methodParameterDetails to add to the collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.Remove(Agile.Common.Reflections.MethodParameterDetails)">
            <summary>
            Remove a MethodParameterDetails from the collection
            </summary>
            <param name="methodParameterDetails">methodParameterDetails to remove from the collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.Contains(Agile.Common.Reflections.MethodParameterDetails)">
            <summary>
            Checks if the given MethodParameterDetails is in the collection
            </summary>
            <param name="lookFor">methodParameterDetails to look for in the collection.</param>
            <returns>True if the item is in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.IndexOf(Agile.Common.Reflections.MethodParameterDetails)">
            <summary>
            Searches for the specified MethodParameterDetails and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="methodParameterDetails">methodParameterDetails to get the index of from the collection.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.IndexOf(Agile.Common.Reflections.MethodParameterDetails,System.Int32)">
            <summary>
            Searches for the specified MethodParameterDetails and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="methodParameterDetails">methodParameterDetails to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.IndexOf(Agile.Common.Reflections.MethodParameterDetails,System.Int32,System.Int32)">
            <summary>
            Searches for the specified MethodParameterDetails and returns the zero-based index
            of the first occurrence within the section of the
            collection that starts at the
            specified index and contains the specified number of elements.
            </summary>
            <param name="methodParameterDetails">methodParameterDetails to get the index of from the collection.</param>
            <param name="startIndex">The zero-based starting index of the search.</param>
            <param name="count">The number of elements in the section to search.</param>
            <returns>The index of the item in the collection.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.Insert(System.Int32,Agile.Common.Reflections.MethodParameterDetails)">
            <summary>
            Inserts the MethodParameterDetails into the collection at the specified index.
            </summary>
            <param name="index">The zero-based index at which value should be inserted.</param>
            <param name="methodParameterDetails">methodParameterDetails to insert into the collection.</param>
        </member>
        <member name="M:Agile.Common.Reflections.MethodParameterDetailsCollection.CopyTo(Agile.Common.Reflections.MethodParameterDetails[],System.Int32)">
            <summary>
            Copies a range of elements from the collection of MethodParameterDetails's to a compatible
            one-dimensional System.Array, starting at the specified index of the target array.
            </summary>
            <param name="methodParameterDetailss">The one-dimensional System.Array that is the destination of the elements copied from the collection. The System.Array must have zero-based indexing.</param>
            <param name="index">The zero-based index at which copying begins.</param>
        </member>
        <member name="P:Agile.Common.Reflections.MethodParameterDetailsCollection.Item(System.Int32)">
            <summary>
            Returns the MethodParameterDetails that is at the given index in the collection.
            </summary>
        </member>
        <member name="T:Agile.Common.Reflections.PluginFinder">
            <summary>
            Summary description for PluginFinder.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.PluginFinder.SearchPath(System.String)">
            <summary>
            Search all dlls in the path.
            
            </summary>
            <param name="path"></param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.PluginFinder.IsAgilePluginType(System.Type)">
            <summary>
            
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="T:Agile.Common.Reflections.ResourceNotFoundException">
            <summary>
            Exception for when a particular resource wasn't found
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.ResourceNotFoundException.#ctor(System.Reflection.Assembly,System.String)">
            <summary>
            Instantiate the exception.
            </summary>
            <param name="theAssembly">Assembly in which to look for the resource.</param>
            <param name="fileName">Name of the resource file.</param>
        </member>
        <member name="T:Agile.Common.Reflections.Types">
            <summary>
            Summary description for Types.
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.Types.#ctor">
            <summary>
            Do not contruct
            </summary>
        </member>
        <member name="M:Agile.Common.Reflections.Types.ContainsTypeNamed(System.Reflection.Assembly,System.String)">
            <summary>
            Returns true if a Type of the given name is in the given Assembly.
            </summary>
            <param name="assemblyToSearch">Assembly to search through</param>
            <param name="nameOfTypeToFind">Name of the type to look for.</param>
            <returns>True if there is a Type of the given name in the Assembly.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetTypeNamed(Agile.Common.Reflections.AgileAssemblyCollection,System.String)">
            <summary>        
            Gets the Type of the given name from the given Assemblies.
            </summary>
            <remarks>CASE sensitive and will get the first Type found.</remarks>
            <param name="assembliesToSearch">Assemblies to search through</param>
            <param name="nameOfTypeToFind">Name of the type to look for.</param>
            <returns>null if the type is not found, otherwise the Type.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetTypeNamed(System.Reflection.Assembly,System.String)">
            <summary>        
            Gets the Type of the given name from the given Assembly.
            </summary>
            <remarks>CASE sensitive</remarks>
            <param name="assemblyToSearch">Assembly to search through</param>
            <param name="nameOfTypeToFind">Name of the type to look for.</param>
            <returns>null if the type is not found, otherwise the Type.</returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.IsDecendantOf(System.Type,System.Type)">
            <summary>
            Returns true if the child types inheritance tree eventually
            leads to the base type.
            </summary>
            <param name="childType">Check the inheritance of this type</param>
            <param name="baseType">Is this Type in the Childs inheritance tree</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.IsDirectDecendantOf(System.Type,System.Type)">
            <summary>
            Returns true if the child type DIRECTLY inherits from
            the base type.
            </summary>
            <param name="childType">Check the inheritance of this type</param>
            <param name="baseType">Check if the child type directly inherits from this type</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetAllSubClassesOf(Agile.Common.Reflections.AgileAssemblyCollection,System.Type,System.Boolean)">
            <summary>
            Retrieves all sub classes of a particular type. i.e. All classes
            that either directly or indirectly inherit from the super type.
            </summary>
            <param name="assembliesToSearch">Search these assemblies for all sub types.</param>
            <param name="baseType">The base (super) type that returned types must inherit from.</param>
            <param name="includeAbstractClasses">Set to true if you want to also include Abstract classes.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetAllSubClassesOf(System.Reflection.Assembly,System.Type,System.Boolean)">
            <summary>
            Retrieves all sub classes of a particular type. i.e. All classes
            that either directly or indirectly inherit from the super type.
            </summary>
            <param name="assemblyToSearch">Search this assembly for all sub types.</param>
            <param name="baseType">Base the base (super) type that returned types must inherit from.</param>
            <param name="includeAbstractClasses">Set to true if you want to also include Abstract classes.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetDirectDecendantsOf(System.Reflection.Assembly,System.Type,System.Boolean)">
            <summary>
            Retrieves all direct decendants of a particular type. i.e. All classes
            that directly inherit from the super type.
            </summary>
            <param name="assemblyToSearch">Search this assembly.</param>
            <param name="baseType">The base (super) type that returned types must inherit from.</param>
            <param name="includeAbstractClasses">Set to true if you want to also include Abstract classes.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetDirectDecendantsOf(Agile.Common.Reflections.AgileAssemblyCollection,System.Type,System.Boolean)">
            <summary>
            Retrieves the direct decendants of a particular type. i.e. All classes
            that directly inherit from the super type.
            </summary>
            <param name="assembliesToSearch">Search these assemblies.</param>
            <param name="baseType">The base (super) type that returned types must inherit directly from.</param>
            <param name="includeAbstractClasses">Set to true if you want to also include Abstract classes.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetAllTypesIn(System.Reflection.Assembly)">
            <summary>
            Returns the collection of Types that are in the given assembly.
            </summary>
            <param name="assembly">Assembly to get the contained types from.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetClassesImpementing(Agile.Common.Reflections.AgileAssemblyCollection,System.Type)">
            <summary>
            Returns a collection of Types that implement the given interface
            </summary>
            <param name="assembliesToSearch">Search these assemblies.</param>
            <param name="interfaceImplemented">The interface that Types must implement to be included in the returned collection.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetClassesImpementing(System.Reflection.Assembly,System.Type)">
            <summary>
            Returns a collection of Types that implement the given interface
            </summary>
            <param name="assembly">The assembly to search.</param>
            <param name="interfaceImplemented">The interface that Types must implement to be included in the returned collection.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetClassesWithAttribute(Agile.Common.Reflections.AgileAssemblyCollection,System.Type)">
            <summary>
            Returns a collection of Types that declare a specific Attribute
            </summary>
            <param name="assembliesToSearch">Search these assemblies.</param>
            <param name="attributeType">The Type of the attribute that classes must have
            declared to be included in the returned collection.</param>
            <returns></returns>
        </member>
        <member name="M:Agile.Common.Reflections.Types.GetClassesWithAttribute(System.Reflection.Assembly,System.Type)">
            <summary>
            Returns a collection of Types that declare a specific Attribute
            </summary>
            <param name="assembly">The assembly to search.</param>
            <param name="attributeType">The Attribute Type that Types must declare 
            to be included in the returned collection.</param>
            <returns></returns>
        </member>
    </members>
</doc>
